Move document Lookat from bottom. Thiw was blessed by Google long ago,
authorrobertl <robertl@f51c46e8-681c-474f-0cfe-069cfd0219fb>
Wed, 1 Jun 2011 00:54:54 +0000 (00:54 +0000)
committerrobertl <robertl@f51c46e8-681c-474f-0cfe-069cfd0219fb>
Wed, 1 Jun 2011 00:54:54 +0000 (00:54 +0000)
but it's technically incorrect, so we fixed it.

gpsbabel/kml.c
gpsbabel/reference/bounds-test.kml
gpsbabel/reference/earth-expertgps-track.kml
gpsbabel/reference/earth-expertgps.kml
gpsbabel/reference/earth-gc.kml
gpsbabel/reference/track/bounds-test-track.kml
gpsbabel/reference/track/gpx_garmin_extensions-kml_track.kml
gpsbabel/reference/track/gtrnctr_power-kml.kml
gpsbabel/reference/track/segmented_tracks-track.kml
gpsbabel/reference/track/segmented_tracks.kml

index 62b0667db3ecc684c2a9b843e35b140edeaf84e1..83634f114e69217082fe65b193e1b7d10c4dece4 100644 (file)
@@ -772,11 +772,13 @@ static void kml_recompute_time_bounds(const waypoint *waypointp) {
   }
 }
 
-static void kml_output_point(const waypoint *waypointp, kml_point_type pt_type) {
-  const char *style;
-
+static void kml_add_to_bounds(const waypoint *waypointp) {
   waypt_add_to_bounds(&kml_bounds, waypointp);
   kml_recompute_time_bounds(waypointp);
+}
+
+static void kml_output_point(const waypoint *waypointp, kml_point_type pt_type) {
+  const char *style;
 
   switch (pt_type) {
     case kmlpt_track: style = "#track"; break;
@@ -1087,8 +1089,6 @@ static void kml_waypt_pr(const waypoint *waypointp)
                kml_write_xml(-1, "</LookAt>\n");
        }
 #endif
-       waypt_add_to_bounds(&kml_bounds, waypointp);
-       kml_recompute_time_bounds(waypointp);
 
        if (waypointp->gc_data->diff && waypointp->gc_data->terr) {
                kml_geocache_pr(waypointp);
@@ -1287,9 +1287,6 @@ static void kml_mt_hdr(const route_head *header)
     char time_string[64];
     waypoint *tpt = (waypoint *)elem;
 
-    // Add it to our bounding box so our default LookAt/flyto does a good
-    // thing.
-    waypt_add_to_bounds(&kml_bounds, tpt);
     if (tpt->creation_time) {
       xml_fill_in_time(time_string, tpt->creation_time, tpt->microseconds,
                        XML_LONG_TIME);
@@ -1390,6 +1387,17 @@ static void kml_route_tlr(const route_head *header)
 void kml_write_AbstractView(void) {
   double bb_size;
 
+  // Make a pass through all the points to find the bounds.
+  if (waypt_count()) {
+    waypt_disp_all(kml_add_to_bounds);
+  }
+  if (track_waypt_count())  {
+    track_disp_all(NULL, NULL, kml_add_to_bounds);
+  }
+  if (route_waypt_count()) {
+    route_disp_all(NULL, NULL, kml_add_to_bounds);
+  }
+
   kml_write_xml(1, "<LookAt>\n");
 
   if (kml_time_min || kml_time_max) {
@@ -1488,6 +1496,8 @@ void kml_write(void)
                kml_write_xml(0, "<Snippet>Created %s</Snippet>\n", import_time);
        }
 
+    kml_write_AbstractView();
+
        // Style settings for bitmaps
        if (route_waypt_count()) {
                kml_write_bitmap_style(kmlpt_route, ICON_RTE, NULL);
@@ -1593,7 +1603,6 @@ void kml_write(void)
                }
         }
 
-        kml_write_AbstractView();
        kml_write_xml(-1, "</Document>\n");
        kml_write_xml(-1, "</kml>\n");
 }
index 047143904b788afc6b7a3a830bb07e8c1c9885cc..be7a15ad88c4498bb02b30154c76373099c6c70a 100644 (file)
@@ -3,6 +3,11 @@
        xmlns:gx="http://www.google.com/kml/ext/2.2">
   <Document>
     <name>GPS device</name>
+    <LookAt>
+      <longitude>-117.144015</longitude>
+      <latitude>36.438270</latitude>
+      <range>87257.203848</range>
+    </LookAt>
 <!-- Normal route style -->
     <Style id="route_n">
       <IconStyle>
         </Placemark>
       </Folder>
     </Folder>
-    <LookAt>
-      <longitude>-117.144015</longitude>
-      <latitude>36.438270</latitude>
-      <range>87257.203848</range>
-    </LookAt>
   </Document>
 </kml>
index 94a223e99c2bc0273babac3387e3f344d67e3f45..878b58cbbbf3fea56054882e841c35e269d38a40 100644 (file)
@@ -3,6 +3,15 @@
        xmlns:gx="http://www.google.com/kml/ext/2.2">
   <Document>
     <name>GPS device</name>
+    <LookAt>
+      <gx:TimeSpan>
+        <begin>2001-06-02T00:18:13Z</begin>
+        <end>2002-05-25T19:05:57Z</end>
+      </gx:TimeSpan>
+      <longitude>-81.356770</longitude>
+      <latitude>36.257086</latitude>
+      <range>2979727.763965</range>
+    </LookAt>
 <!-- Normal route style -->
     <Style id="route_n">
       <IconStyle>
         </Placemark>
       </Folder>
     </Folder>
-    <LookAt>
-      <gx:TimeSpan>
-        <begin>2001-06-02T00:18:13Z</begin>
-        <end>2002-05-25T19:05:57Z</end>
-      </gx:TimeSpan>
-      <longitude>-81.356770</longitude>
-      <latitude>36.257086</latitude>
-      <range>2979727.763965</range>
-    </LookAt>
   </Document>
 </kml>
index be2a0ba7dfddd8a5ad21b6f526b23ff23efa2288..f389abdde46922d03d93d51c18ffba791d96adef 100644 (file)
@@ -3,6 +3,15 @@
        xmlns:gx="http://www.google.com/kml/ext/2.2">
   <Document>
     <name>GPS device</name>
+    <LookAt>
+      <gx:TimeSpan>
+        <begin>2001-06-02T00:18:13Z</begin>
+        <end>2002-05-25T19:05:57Z</end>
+      </gx:TimeSpan>
+      <longitude>-81.356770</longitude>
+      <latitude>36.257086</latitude>
+      <range>2979727.763965</range>
+    </LookAt>
 <!-- Normal route style -->
     <Style id="route_n">
       <IconStyle>
         </Placemark>
       </Folder>
     </Folder>
-    <LookAt>
-      <gx:TimeSpan>
-        <begin>2001-06-02T00:18:13Z</begin>
-        <end>2002-05-25T19:05:57Z</end>
-      </gx:TimeSpan>
-      <longitude>-81.356770</longitude>
-      <latitude>36.257086</latitude>
-      <range>2979727.763965</range>
-    </LookAt>
   </Document>
 </kml>
index 667ef32f0f52cc3e3d299a9e72af832b7aa29fe3..52b824d7c751a3ad9db813117b1a917b572bc5d3 100644 (file)
@@ -3,6 +3,15 @@
        xmlns:gx="http://www.google.com/kml/ext/2.2">
   <Document>
     <name>GPS device</name>
+    <LookAt>
+      <gx:TimeSpan>
+        <begin>2002-08-15T07:00:00Z</begin>
+        <end>2003-06-29T07:00:00Z</end>
+      </gx:TimeSpan>
+      <longitude>-79.930833</longitude>
+      <latitude>41.027500</latitude>
+      <range>2109328.437865</range>
+    </LookAt>
 <!-- Normal waypoint style -->
     <Style id="waypoint_n">
       <IconStyle>
@@ -155,14 +164,5 @@ Now that it's intuitively obvious to even the most casual observer where the cac
         </Point>
       </Placemark>
     </Folder>
-    <LookAt>
-      <gx:TimeSpan>
-        <begin>2002-08-15T07:00:00Z</begin>
-        <end>2003-06-29T07:00:00Z</end>
-      </gx:TimeSpan>
-      <longitude>-79.930833</longitude>
-      <latitude>41.027500</latitude>
-      <range>2109328.437865</range>
-    </LookAt>
   </Document>
 </kml>
index b4d4b078bc64a8c5fc4b1ae9d272864493817478..3bb3be92b74d3bbb7b5d91388d490f3d5977c48c 100644 (file)
@@ -3,6 +3,11 @@
        xmlns:gx="http://www.google.com/kml/ext/2.2">
   <Document>
     <name>GPS device</name>
+    <LookAt>
+      <longitude>-117.144015</longitude>
+      <latitude>36.438270</latitude>
+      <range>87257.203848</range>
+    </LookAt>
 <!-- Normal track style -->
     <Style id="track_n">
       <IconStyle>
         </Placemark>
       </Folder>
     </Folder>
-    <LookAt>
-      <longitude>-117.144015</longitude>
-      <latitude>36.438270</latitude>
-      <range>87257.203848</range>
-    </LookAt>
   </Document>
 </kml>
index e68071dc305629e862aa885c4daecf21ff03ccd4..ee7c1d0d90feac686acb39bec2e40ba3a865f643 100644 (file)
@@ -3,6 +3,15 @@
        xmlns:gx="http://www.google.com/kml/ext/2.2">
   <Document>
     <name>GPS device</name>
+    <LookAt>
+      <gx:TimeSpan>
+        <begin>2008-08-20T07:04:48Z</begin>
+        <end>2008-08-20T07:04:55Z</end>
+      </gx:TimeSpan>
+      <longitude>-0.035329</longitude>
+      <latitude>51.506248</latitude>
+      <range>1300.000000</range>
+    </LookAt>
 <!-- Normal track style -->
     <Style id="track_n">
       <IconStyle>
         </Placemark>
       </Folder>
     </Folder>
-    <LookAt>
-      <gx:TimeSpan>
-        <begin>2008-08-20T07:04:48Z</begin>
-        <end>2008-08-20T07:04:55Z</end>
-      </gx:TimeSpan>
-      <longitude>-0.035329</longitude>
-      <latitude>51.506248</latitude>
-      <range>1300.000000</range>
-    </LookAt>
   </Document>
 </kml>
index 358f78cf855b59cd4b9ee49b6cbcda316ada37e2..00bd762ae208af31f48e2e00864c7c4b96385529 100644 (file)
@@ -3,6 +3,15 @@
        xmlns:gx="http://www.google.com/kml/ext/2.2">
   <Document>
     <name>GPS device</name>
+    <LookAt>
+      <gx:TimeSpan>
+        <begin>2010-05-28T01:16:36Z</begin>
+        <end>2010-05-28T02:41:44Z</end>
+      </gx:TimeSpan>
+      <longitude>-122.139608</longitude>
+      <latitude>37.382794</latitude>
+      <range>19819.321245</range>
+    </LookAt>
 <!-- Normal track style -->
     <Style id="track_n">
       <IconStyle>
         </gx:Track>
       </Placemark>
     </Folder>
-    <LookAt>
-      <gx:TimeSpan>
-        <begin>2010-05-28T01:16:36Z</begin>
-        <end>2010-05-28T02:41:44Z</end>
-      </gx:TimeSpan>
-      <longitude>-122.139608</longitude>
-      <latitude>37.382794</latitude>
-      <range>19819.321245</range>
-    </LookAt>
   </Document>
 </kml>
index b10c24d35bc00fc8491804a76695c5af99e21778..2fd6c296d5898c1ec19820770cb5500154691500 100644 (file)
@@ -3,6 +3,15 @@
        xmlns:gx="http://www.google.com/kml/ext/2.2">
   <Document>
     <name>GPS device</name>
+    <LookAt>
+      <gx:TimeSpan>
+        <begin>2007-07-27T05:24:05Z</begin>
+        <end>2007-07-27T05:35:00Z</end>
+      </gx:TimeSpan>
+      <longitude>-86.841461</longitude>
+      <latitude>35.831217</latitude>
+      <range>1944.793167</range>
+    </LookAt>
 <!-- Normal track style -->
     <Style id="track_n">
       <IconStyle>
         </Placemark>
       </Folder>
     </Folder>
-    <LookAt>
-      <gx:TimeSpan>
-        <begin>2007-07-27T05:24:05Z</begin>
-        <end>2007-07-27T05:35:00Z</end>
-      </gx:TimeSpan>
-      <longitude>-86.841461</longitude>
-      <latitude>35.831217</latitude>
-      <range>1944.793167</range>
-    </LookAt>
   </Document>
 </kml>
index 94bc9d2bc5952257f0e7538a8c3ea7a93addba60..0afc7791db58266e5c75b1778ae25cf9b94f4b5f 100644 (file)
@@ -3,6 +3,15 @@
        xmlns:gx="http://www.google.com/kml/ext/2.2">
   <Document>
     <name>GPS device</name>
+    <LookAt>
+      <gx:TimeSpan>
+        <begin>2007-07-27T05:24:05Z</begin>
+        <end>2007-07-27T05:35:00Z</end>
+      </gx:TimeSpan>
+      <longitude>-86.841461</longitude>
+      <latitude>35.831217</latitude>
+      <range>1944.793167</range>
+    </LookAt>
 <!-- Normal track style -->
     <Style id="track_n">
       <IconStyle>
         </Placemark>
       </Folder>
     </Folder>
-    <LookAt>
-      <gx:TimeSpan>
-        <begin>2007-07-27T05:24:05Z</begin>
-        <end>2007-07-27T05:35:00Z</end>
-      </gx:TimeSpan>
-      <longitude>-86.841461</longitude>
-      <latitude>35.831217</latitude>
-      <range>1944.793167</range>
-    </LookAt>
   </Document>
 </kml>